﻿using System;
namespace App.Modelo.Interfaces
{
    public interface IRepositorio
    {
        void BeginTransaccion();
        void CloseSession();
        void CommitTransaction();
        void DeleteObject(object obj);
        void FlushSession();
        T Get<T>(string filterPropertyName, object filterPropertyValue);
        System.Collections.Generic.IList<T> GetAll<T>();
        T GetById<T>(object id);
        System.Collections.Generic.IList<T> GetList<T>(string _hql, System.Collections.Generic.IDictionary<string, object> _param);
        System.Collections.Generic.IList<T> GetList<T>(string _hql);
        System.Collections.Generic.IList<T> GetList<T>(string filterPropertyName, object filterPropertyValue);
        System.Collections.Generic.IList<T> GetList<T>(string filterPropertyName, string filterPropertyValue);
        System.Collections.Generic.IList<T> GetList<T>(string _hql, System.Collections.Generic.IDictionary<string, string> _param);
        void OpenSession();
        void RoolbackTransaction();
        void SaveObject(object obj);
        void UpdateObject(object obj);
        void Refresh(object obj);
        object GetSessionId();
        System.Data.IDbConnection Connection { get; }
        event EventHandler<TriggerEventHandler> FlushData;
    }
}
